package cn.edu.sgu.www.mhxysy.service;

import cn.edu.sgu.www.mhxysy.base.Pager;
import cn.edu.sgu.www.mhxysy.dto.RoleAccountDTO;
import cn.edu.sgu.www.mhxysy.entity.RoleAccount;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author heyunlin
 * @version 1.0
 */
public interface RoleAccountService {

	/**
	 * 添加角色
	 * @param roleAccountDTO 角色信息
	 */
	@Transactional(rollbackFor = Exception.class)
	void insert(RoleAccountDTO roleAccountDTO);

	/**
	 * 通过ID删除角色
	 * @param roleId 角色ID
	 */
	@Transactional(rollbackFor = Exception.class)
	void deleteById(String roleId);

	/**
	 * 通过ID批量删除角色
	 * @param ids 角色ID列表
	 */
	@Transactional(rollbackFor = Exception.class)
	void deleteByIds(List<String> ids);

	/**
	 * 通过ID修改角色信息
	 * @param roleAccountDTO 角色信息
	 */
	@Transactional(rollbackFor = Exception.class)
	void updateById(RoleAccountDTO roleAccountDTO);

	/**
	 * 查询所有角色
	 * @return List<RoleAccount>
	 */
	List<RoleAccount> selectAll();

	/**
	 * 通过ID查询账号信息
	 * @param roleId 角色ID
	 * @return RoleAccount
	 */
	RoleAccount selectById(String roleId);

	/**
	 * 分页查询角色列表
	 * @param pager 分页参数
	 * @return Page<RoleAccount>
	 */
    Page<RoleAccount> selectByPage(Pager<RoleAccount> pager);
}